/*
PearReview - The peer review assistant.
Copyright (C) 2009  Dimitrij Pankratz, Anton Musichin
http://www.pearreview.com, info@pearreview.com

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
*/

package com.pearreview.ui;

import java.awt.*;
import java.awt.event.HierarchyEvent;
import java.awt.event.HierarchyListener;

import javax.swing.*;

/**
 * @author Dimitrij Pankratz, Anton Musichin
 * @version 1.0
 *
 */
public class FadingTextArea extends JTextArea {

	private static final long serialVersionUID = -2682071787757750583L;
	
	private JScrollPane parentScrollPane;
	
	public FadingTextArea () {
		super ();
		
		setFont(new Font("Tahoma", Font.PLAIN, 12));
		setBorder(BorderFactory.createEmptyBorder(0,0,0,0));
		setLineWrap(true);
		
		this.addHierarchyListener(new HierarchyListener() {

			@Override
			public void hierarchyChanged(HierarchyEvent e) {
				if (getParent() != null && getParent().getParent() != null
						&& parentScrollPane == null) {
					if (getParent() instanceof JViewport && 
							getParent().getParent() instanceof JScrollPane) {
						parentScrollPane = 
							(JScrollPane)getParent().getParent();
						parentScrollPane.setBorder(
								BorderFactory.createMatteBorder(
										1, 1, 1, 1, new Color(0x828790)));
					}
				}
			}
		});
		
		setWrapStyleWord(true);
		
		//--- fading effect ---
		FadingManager.getInstance().registerComponent(this);
		
		//--- contextMenu ---
		CutCopyPasteManager.getInstance().registerJTextComponent(this);
	}
}